// 我的-部门管理-统一发送录取信息
const db = wx.cloud.database()
const _ = db.command
Page({

  /**
   * 页面的初始数据
   */
  data: {
    isadmitArray: [], //储存获取的全部记录信息
    successAdmit: 0, //成功发送信息数量统计
    Admitcount: 0, //被录取的数量
    Maxlist: 20 //小程序端最大获取量

  },
  _admit() {
    
    wx.showModal({
      title: '提示',
      content: '确定发送推送信息吗',
    }).then(res=> {
        if (res.confirm) {
          console.log('用户点击确定')
          // 1.一次性获取willing表中admissionstatus为1的记录————> 统计数量，多次获取
    // 2.循环遍历获取的每一条记录信息
    // 3.1对记录的admissionstatus进行判断，如果两个一则直接发送请选择的信息
    // 3.2如果为一个则直接发送其对应departmentName的信息即可，并将其录取信息写入数据库。

    db.collection("Users").where({
      //有录取记录的
      isadmit: _.exists(true)
    }).count().then(async res => {
      let Total = res.total
      this.setData({
        Admitcount: Total
      })
      let batchTime = Math.ceil(Total / this.data.Maxlist)
      var oldData = []
      for (let i = 0; i < batchTime; i++) {
        await db.collection("Users").where({
          isadmit: _.exists(true)
        }).skip(i * this.data.Maxlist).get().then(async res => {
          oldData = oldData.concat(res.data)
        })
      }
      this.setData({
        isadmitArray: oldData
      })
      let NO=0;
        for (let val of this.data.isadmitArray) {
         NO++;
        let count = 0;
        console.log("第"+NO+"用户");
        console.log(val);
        for (let length in val.isadmit) {
          count++;
        }
        console.log("该用户被"+count+"个部门录取");
        // 只有一个录取
        if (count == 1) {
         await wx.cloud.callFunction({
            name: 'sendMsg',
            data: {
              _openid: val._openid,
              realName: val.realName,
              departmentName: val.isadmit[0].departmentName,
              groupNumber:'666666'
            }
          }).then(async res=>{
            //云函数的success只是代表调用云函数成功，并不云函数中的结果执行是正确的
              console.log(res);
              if (res.result == 0) {
                console.log('成功录取了一个用户');
                console.log(res);
                //添加
                this.setData({
                  successAdmit: ++this.data.successAdmit
                })
              } else {
                wx.showToast({
                  title: '录取信息有误',
                  icon: 'error'
                })
              }
              //更新department记录，将其加入该部门
              await db.collection("Users").where({
                _openid:val._openid
              }).update(
                {
                data:{
                  department:val.isadmit[0].departmentName,
                  admitTime:this.getNowDate()
              }}).then(async res=>{
                console.log(res);
              })
            
            
          })
        } else if (count == 2) {
          //两个录取
         await wx.cloud.callFunction({
            name: 'sendMsgDouble',
            data: {
              _openid: val._openid,
              realName: val.realName,
            }
          }).then(async res=>{
            //云函数的success只是代表调用云函数成功，并不云函数中的结果执行是正确的
            //#region 
            //成功的回调
            console.log('两个志愿');
            console.log(res);
            if (res.result == 0) {
              console.log('成功录取了一个用户');
              console.log(res);
              //添加
              this.setData({
                successAdmit: ++this.data.successAdmit
              })
            } else {
              wx.showToast({
                title: '录取信息有误',
                icon: 'error'
              })
            }
          })
        }
      }
      wx.showModal({
        title: '提示',
        content: '成功录取了' + this.data.successAdmit,
        showCancel: true,
        cancelColor: 'cancelColor',
      })
    })
        } else if (res.cancel) {
          console.log('用户点击取消')

        }
      }
    )
    
    
    
  },
  getNowDate(){
    var myDate = new Date();
    var year = myDate.getFullYear(); //获取当前年
    var mon = myDate.getMonth() + 1; //获取当前月
    var date = myDate.getDate(); //获取当前日
    var hours = myDate.getHours(); //获取当前小时
    var minutes = myDate.getMinutes(); //获取当前分钟
    var seconds = myDate.getSeconds(); //获取当前秒
    var now = year + "/" + mon + "/" + date + " " + hours + ":" + minutes + ":" + seconds;
    return now;
  },
  
  /**
   * 生命周期函数--监听页面加载
   */
  onLoad(options) {
  },

  /**
   * 生命周期函数--监听页面初次渲染完成
   */
  onReady() {

  },

  /**
   * 生命周期函数--监听页面显示
   */
  onShow() {

  },

  /**
   * 生命周期函数--监听页面隐藏
   */
  onHide() {

  },

  /**
   * 生命周期函数--监听页面卸载
   */
  onUnload() {

  },

  /**
   * 页面相关事件处理函数--监听用户下拉动作
   */
  onPullDownRefresh() {

  },

  /**
   * 页面上拉触底事件的处理函数
   */
  onReachBottom() {

  },

  /**
   * 用户点击右上角分享
   */
  onShareAppMessage() {

  }
})